"""
OTSU 是采用 最大类间方差 计算阈值，尽可能将图像像素值分为两类【前景和背景】
昨天讲到的 阈值法、反阈值法都是我们自己去指定threshold，就会对结果造成影响，
现在使用OTSU算法，让它帮我们算阈值
"""

import cv2
import matplotlib.pyplot as plt

img = cv2.imread("../images/flower.png")
h, w, _ = img.shape

# 灰度化（变成二维数组）
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 将二维数组展平成一维数组
plt.hist(img_gray.flatten(), bins=255)
plt.show()

# 调用阈值处理的API
ret, img_binary = cv2.threshold(img_gray, 200, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
print("观察OTSU的阈值处理结果：", ret)
cv2.imshow("img_binary", img_binary)
cv2.waitKey(0)
